Zenoh
Table of Content
Zenoh#
DDS/ROS bridge#
The DDS bridge can install as - Zenoh router plugin - Standalone executable
install#
echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list.d/zenoh.list
sudo apt update
bridge
sudo apt install zenoh-bridge-dds
Demo#
Run standalone bridge and connect two ROS node from different domains

Note
The 2 bridges will discover each other using UDP multicast.
terminal1
ROS_DOMAIN_ID=1 ros2 run turtlesim turtlesim_node
terminal2
ROS_DOMAIN_ID=2 ros2 run turtlesim turtle_teleop_key
terminal1
zenoh-bridge-dds -d 2
terminal1
zenoh-bridge-dds -d 1

to read
Demo2 - Add configuration to control topics between bridges#
default config example from github
{
plugins: {
dds: {
allow: ["cmd_vel"]
}
}
}
terminal1
ROS_DOMAIN_ID=1 ros2 run turtlesim turtlesim_node
terminal2
ROS_DOMAIN_ID=2 ros2 run turtlesim turtle_teleop_key
terminal1
zenoh-bridge-dds -d 2 -c zenoh_bridge.json
terminal1
zenoh-bridge-dds -d 1 -c zenoh_bridge.json
The bridge ignore all topic except the cmd_vel
bridge log sample
...
[2023-07-08T04:17:30Z INFO zenoh_plugin_dds] Route DDS->Zenoh (rt/turtle1/cmd_vel -> rt/turtle1/cmd_vel): created with topic_type=geometry_msgs::msg::dds_::Twist_
[2023-07-08T04:17:30Z INFO zenoh_plugin_dds] Ignoring Publication for resource rq/turtle1/rotate_absolute/_action/send_goalRequest as it is not allowed (see your 'allow' or 'deny' configuration)
...